<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script> -->
    <script src="./my-jQuery.js"></script>
    <script>
        //    var cal = $.Callbacks('once unique stopOnFalse');

        //    function a (arg) {
        //     console.log('is a', arg);
        //     return false
        //    }
        //    function b (arg) {
        //     console.log('is b', arg);
        //    }

        //    cal.add(b);
        //    cal.add(a);
        //    cal.add(a);
        //    cal.fire('大飞老师 帅');
        //    cal.add(a);
        //    cal.fire();
        // function createdDef() {
        //     var def = $.Deferred();
        //     setTimeout(function() {
        //         def.resolve('我成功了');
        //     }, 500);
        //     return def.promise();
        // }
        // var def = createdDef();
        // def.resolve();
        // def.then(function(arg) {
        //     console.log(arg)
        // })

        // def.reject();
        // def.resolve();
        // def.notify();

        // def.done(function() {

        // });
        // def.fail(function() {

        // });
        // def.progress(function() {

        // });

        var def = $.MyDeferred();
        setTimeout(function () {
            def.resolve('loading');

        }, 500);
        def.then(function (arg) {
            var def2 = $.MyDeferred();
            console.log('ok', arg);
            throw Error('error 哎呦')
            // setTimeout(function() {
            //     def2.notify('loading...');
            // }, 500)
            // return def2.promise();

        },function(err) {
            console.log(err);
        }, function() {
            console.log('革命尚未成功 同志热须努力');
            return '正在进行'
        }).then(function(arg) {
            console.log(arg);
        }, function(err) {
            console.log('error', err)
        }, function(arg) {
            console.log('progress', arg)
        });

    </script>
</body>

</html>